/*
*********************************************************************************************************
*
*                                           ctrl_io.h
*
* 文件名称 : ctrl_io.h
* 文件版本 : V0.01
* 文件描述 : 通用io设置
* 编写人员 : HHL
* 修改人员 :
* 编修描述 : V0.01，时间2013.11.30
*********************************************************************************************************
*/
#ifndef __ctrl_io_h
#define __ctrl_io_h
#include "stdint.h"
/*
*********************************************************************************************************
*                                           预处理描述
*********************************************************************************************************
*/

typedef  enum  _led
{
    RUN1,
    RUN2,
    STA1,
    STA2,
    ABN,
    WAR,
    ERR,
	LEDALL,
}LED;

//LED控制定义
#define   LED_RUN1_GPIO         GPIOC
#define   LED_RUN1_Pin          GPIO_Pin_2

#define   LED_RUN2_GPIO         GPIOF
#define   LED_RUN2_Pin          GPIO_Pin_8

#define   LED_STA1_GPIO         GPIOF
#define   LED_STA1_Pin          GPIO_Pin_9

#define   LED_STA2_GPIO         GPIOC
#define   LED_STA2_Pin          GPIO_Pin_3

#define   LED_ABN_GPIO          GPIOF
#define   LED_ABN_Pin           GPIO_Pin_10

#define   LED_WAR_GPIO          GPIOF
#define   LED_WAR_Pin           GPIO_Pin_6

#define   LED_ERR_GPIO          GPIOF
#define   LED_ERR_Pin           GPIO_Pin_7

//YKEN_P 遥控 EN+
//YKEN_N 遥控 EN-

typedef  enum  _yk
{
	YK1,  YK2,  YK3,  YK4,  YK5,  YK6,  YK7,  YK8,
	YK9, YK10, YK11, YK12, YK13, YK14, YK15, YK16,
	YK17,YK18, YK19, YK20, YK21, YK22, YK23, YK24,
	YKEN_P,YKEN_N,YKALL,
}YK;

//遥控控制定义
//PI2
#define   YKCtrl_N_GPIO			GPIOI				//遥控允许负
#define   YKCtrl_N_Pin      GPIO_Pin_2
//PI3
#define   YKCtrl_P_GPIO			GPIOI               //正
#define   YKCtrl_P_Pin      GPIO_Pin_3
//PA12
#define   YK1_GPIO		     	GPIOA
#define   YK1_Pin   			  GPIO_Pin_12
//PH14
#define   YK2_GPIO		    	GPIOH
#define   YK2_Pin   		  	GPIO_Pin_14
//PC9
#define   YK3_GPIO		    	GPIOC
#define   YK3_Pin   		  	GPIO_Pin_9
//PA11
#define   YK4_GPIO		    	GPIOA
#define   YK4_Pin   		  	GPIO_Pin_11
//PG7
#define   YK5_GPIO		    	GPIOG
#define   YK5_Pin   		  	GPIO_Pin_7
//PC8
#define   YK6_GPIO		    	GPIOC
#define   YK6_Pin   		  	GPIO_Pin_8
//PB14
#define   YK7_GPIO		    	GPIOB
#define   YK7_Pin   			  GPIO_Pin_14
//PG6
#define   YK8_GPIO		    	GPIOG
#define   YK8_Pin   			  GPIO_Pin_6
//PH10
#define   YK9_GPIO		    	GPIOH
#define   YK9_Pin   			  GPIO_Pin_10
//PH12
#define   YK10_GPIO		    	GPIOH
#define   YK10_Pin   			  GPIO_Pin_12
//PH7
#define   YK11_GPIO		    	GPIOH
#define   YK11_Pin   			  GPIO_Pin_7
//PH9
#define   YK12_GPIO		    	GPIOH
#define   YK12_Pin   	  		GPIO_Pin_9
//PB1
#define   YK13_GPIO		    	GPIOB
#define   YK13_Pin   			  GPIO_Pin_1
//PH6
#define   YK14_GPIO		    	GPIOH
#define   YK14_Pin   			  GPIO_Pin_6
//PC4
#define   YK15_GPIO		    	GPIOC
#define   YK15_Pin  	    	GPIO_Pin_4
//PH4
#define   YK16_GPIO		    	GPIOH
#define   YK16_Pin   	  		GPIO_Pin_4
//PH13
#define   YK17_GPIO		    	GPIOH
#define   YK17_Pin   	  		GPIO_Pin_13
//PA8
#define   YK18_GPIO		    	GPIOA
#define   YK18_Pin   		  	GPIO_Pin_8
//PG8
#define   YK19_GPIO		    	GPIOG
#define   YK19_Pin   		  	GPIO_Pin_8
//PB15
#define   YK20_GPIO		    	GPIOB
#define   YK20_Pin   			  GPIO_Pin_15
//PH11
#define   YK21_GPIO		    	GPIOH
#define   YK21_Pin   			  GPIO_Pin_11
//PH8
#define   YK22_GPIO		    	GPIOH
#define   YK22_Pin   		  	GPIO_Pin_8
//PF11
#define   YK23_GPIO		    	GPIOF
#define   YK23_Pin   		  	GPIO_Pin_11
//PC5
#define   YK24_GPIO		    	GPIOC
#define   YK24_Pin   	  		GPIO_Pin_5

/*
*********************************************************************************************************
*                                           函数申明
*********************************************************************************************************
*/
void led_io_init        (void);                      //GPIO初始化
void LED_ON             (uint32_t led);              //开
void led_off            (uint32_t led);				       //关
void LED_Toggle         (uint32_t led);              //闪烁

void DCChannel_GPIO_INIT(void);                      //直流测量GPIO初始化
void DCChannel          (uint8_t dc_channel);        //直流通道选通

void YK_GPIO_INIT       (void);                      //遥控端口初始化
void YK_ON              (uint32_t yk);               //开
void YK_OFF             (uint32_t yk);               //关

void YK_EN_ON           (void);                      //遥控使能开
void YK_EN_OFF          (void);                      //遥控使能关

#endif
